package com.ruoyi.business.service;

import cn.hutool.core.lang.tree.Tree;
import com.ruoyi.business.domain.bo.PersonFileBo;
import com.ruoyi.business.domain.vo.PersonFileVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 人员档案类型Service接口
 *
 * @author xxyd
 * @date 2024-11-27
 */
public interface IPersonFileService {

    /**
     * 查询人员档案类型
     */
    PersonFileVo queryById(Long id);

    /**
     * 查询人员档案类型列表
     */
    TableDataInfo<PersonFileVo> queryPageList(PersonFileBo bo, PageQuery pageQuery);

    /**
     * 查询人员档案类型列表
     */
    List<PersonFileVo> queryList(PersonFileBo bo);

    /**
     * 新增人员档案类型
     */
    Boolean insertByBo(PersonFileBo bo);

    /**
     * 修改人员档案类型
     */
    Boolean updateByBo(PersonFileBo bo);

    /**
     * 校验并批量删除人员档案类型信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<Tree<Long>> personFileTree(Long personId);
}
